//0x80 bytes (sizeof)
struct _FILE_OBJECT
{
SHORT Type; //0x0
SHORT Size; //0x2
struct
_DEVICE_OBJECT* DeviceObject; //0x4
struct
_VPB* Vpb; //0x8
VOID* FsContext; //0xc
VOID* FsContext2; //0x10
struct
_SECTION_OBJECT_POINTERS* SectionObjectPointer; //0x14
VOID* PrivateCacheMap; //0x18
LONG FinalStatus; //0x1c
struct
_FILE_OBJECT* RelatedFileObject; //0x20
UCHAR LockOperation; //0x24
UCHAR DeletePending; //0x25
UCHAR ReadAccess; //0x26
UCHAR WriteAccess; //0x27
UCHAR DeleteAccess; //0x28
UCHAR SharedRead; //0x29
UCHAR SharedWrite; //0x2a
UCHAR SharedDelete; //0x2b
ULONG Flags; //0x2c
struct
_UNICODE_STRING FileName; //0x30
union
_LARGE_INTEGER CurrentByteOffset; //0x38
ULONG Waiters; //0x40
ULONG Busy; //0x44
VOID* LastLock; //0x48
struct
_KEVENT Lock; //0x4c
struct
_KEVENT Event; //0x5c
struct
_IO_COMPLETION_CONTEXT* CompletionContext; //0x6c
ULONG IrpListLock; //0x70
struct
_LIST_ENTRY IrpList; //0x74
VOID* FileObjectExtension; //0x7c
};